Amazon EBSをマウント済みのEC2インスタンスをリストアする
Amazon EC2を構築する際、ブート領域とデータ領域でEBSで分けることはよくあるやり方です。
こちらのAWSデザインパターン(CDP)でも紹介されていますね。
http://aws.clouddesignpattern.org/index.php/CDP:Snapshot%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
EC2(EBS)の日々のバックアップとして、スナップショットを利用しますが、
障害時などに、スナップショットからEBSをマウント済みのEC2の状態へリストアする手順をメモしておきます。
以下の構成にてマウント済みのものとします。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.9G 2.2G 5.3G 30% / udev 1.9G 4.0K 1.9G 1% /dev tmpfs 752M 320K 752M 1% /run none 5.0M 0 5.0M 0% /run/lock none 1.9G 0 1.9G 0% /run/shm /dev/xvdf1 5.0G 251M 4.5G 6% /mnt/data
/mnt/dataにデータ領域として5GBマウントしています。
リストア手順ですが、まず、ec2-register を使って、コマンドラインからAMIを作成します。
環境変数としては、以下が必要です。
export JAVA_HOME=/usr/local/jdk6 export EC2_HOME=/opt/ec2-api-tools-1.4.4.2 export EC2_PRIVATE_KEY=/etc/ec2_keys/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem export EC2_CERT=/etc/ec2_keys/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem export EC2_URL=https://ec2.ap-northeast-1.amazonaws.com export PATH=$JAVA_HOME/bin:$EC2_HOME/bin:$PATH
1. AMIの作成
◯ 構文の例
ec2-register [--name 作成されるAMIの名前] [--description 作成されるAMIの説明] \ [--root-device-name ルートデバイス名] [--snapshot ルートデバイスのスナップショットID] \ [--block-device-mapping マウントしたデバイス名 = マウントしたデバイスのスナップショットID] \ [--architecture アーキテクチャ名] [-kernel カーネルID]
まず、スナップショットからAMIを作成します。
スナップショットIDはManagementConsole等から確認し指定します。
カーネルIDも、ManagementConsoleから確認出来ます。
コマンドを実行して、AMIを作成します。
$ ec2-register --name cm_dev --description 'cm_dev_ami' \ --root-device-name /dev/sda1 --snapshot snap-xxxxxxxx \ --block-device-mapping /dev/sdf1=snap-xxxxxxxx \ --architecture x86_64 -kernel aki-ee5df7ef IMAGE ami-bce053bd
2. インスンタンスの起動
次に作成されたAMIから、インスタンスを起動します。
◯ 構文の例
ec2-run-instances AMI_ID [--instance-type インスタンスタイプ] [-key キーペア] [--kernel カーネルID] [-group セキュリティーグループ]
AMI_IDは①で作成されたIMAGE_IDを指定します。
コマンドを実行して、インスタンスを起動します。
$ ec2-run-instances ami-bce053bd --instance-type m1.small -key cm_key --kernel aki-ee5df7ef -group cm_group INSTANCE i-9b077a9b
3. EIPのアタッチ
必要に応じて、EIPをアタッチします。
◯ 構文の例
ec2-associate-address [-i インスタンスID] [IPアドレス]
コマンドを実行して、EIPをアタッチします。
$ ec2-associate-address -i i-9b077a9b XXX.XXX.XXX.XXX ADDRESS XXX.XXX.XXX.XXX i-9b077a9b
以上、リストアのメモでした。